<?php

namespace app\api\controller;


use app\api\biz\RoleMenuBiz;
use app\common\controller\ApiController;
use app\common\Result;
use joncc\attribute\attr\AuthNeedless;
use joncc\attribute\attr\Comment;
use joncc\attribute\attr\Params;
use joncc\attribute\attr\PermissionDefine;
use joncc\attribute\attr\PermissionNeedless;
use think\response\Json;


#[Comment('角色菜单')]
#[AuthNeedless]
#[PermissionNeedless]
#[PermissionDefine('list', '列表')]
#[PermissionDefine('add', '新增')]
class RoleMenu extends ApiController
{

    #[Params('role_id', Params::INT, true, '角色ID')]
    public function list(): Json
    {
        $roleMenuBiz = RoleMenuBiz::list(p('role_id'));
        return Result::success($roleMenuBiz::getData());
    }

    #[Params('role_id', Params::INT, true, '角色ID')]
    #[Params('menu_ids', Params::ARRAY, false, '菜单IDs')]
    public function add(): Json
    {
        $roleMenuBiz = RoleMenuBiz::add(p('role_id'), p('menu_ids'));
        if ($roleMenuBiz::hasError()) {
            return Result::fail(...$roleMenuBiz::getError());
        }
        return Result::success($roleMenuBiz::getData());
    }
}
